#include"UdpServer.hpp"
#include<memory>
//"120.78.126.148"点分十进制字符串风格的ip地址

//建议port端口号绑定在1024以上，最好是越大越好
void Usage(std::string prot)
{
    std::cout<<"\n\rUsage: "<<prot<<" port[1024]+\n"<<std::endl;
}


//demo文件
std::string Handler(const std::string &str)
{
    std::string res = "Server get a message: ";
    res += str;
    std::cout << res << std::endl;

    // pid_t id = fork();
    // if(id == 0)
    // {
    //     // ls -a -l -> "ls" "-a" "-l"
    //     // exec*();
    // }
    return res;
}

std::string ExcuteCommand(const std::string &cmd)
{
    // SafeCheck(cmd);

    FILE *fp = popen(cmd.c_str(), "r");
    if(nullptr == fp)
    {
        perror("popen");
        return "error";
    }
    std::string result;
    char buffer[4096];
    while(true)
    {
        char *ok = fgets(buffer, sizeof(buffer), fp);
        if(ok == nullptr) break;
        result += buffer;
    }
    pclose(fp);

    return result;
}



int main(int argc,char*argv[])
{
    if(argc!=2)
    {
        Usage(argv[0]);
        exit(0);
    }
    uint16_t port=std::stoi(argv[1]);
    std::unique_ptr<UdpServer> svr(new UdpServer(8080));
    //初始化
    svr->Init();
    //跑起来
    svr->Run();
    return 0;
}